package edu.northwestern.cbits.purple_robot_manager.config;
import java.util.List;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import edu.northwestern.cbits.purple_robot_manager.PurpleRobotApplication;
import edu.northwestern.cbits.purple_robot_manager.probes.ProbeManager;
import edu.northwestern.cbits.purple_robot_manager.triggers.TriggerManager;
import android.content.Context;
public class JSONConfigFile
{
private Context _context;
public JSONConfigFile(Context context)
{
this._context = context;
}
public String toString()
{
try
{
JSONObject config = JSONConfigFile.jsonFromMap(PurpleRobotApplication.configuration(this._context));
config.put(
"triggers",
JSONConfigFile.jsonFromList(TriggerManager.getInstance(this._context).triggerConfigurations(
this._context)));
config.put("probes", JSONConfigFile.jsonFromList(ProbeManager.probeConfigurations(this._context)));
return config.toString();
}
catch (JSONException e)
{
return "{}";
}
}
@SuppressWarnings("unchecked")
public static JSONObject jsonFromMap(Map<String, Object> map) throws JSONException
{
JSONObject json = new JSONObject();
for (String key : map.keySet())
{
Object value = map.get(key);
if (value instanceof List<?>)
value = JSONConfigFile.jsonFromList((List<Map<String, Object>>) value);
else if (value instanceof Map<?, ?>)
value = JSONConfigFile.jsonFromMap((Map<String, Object>) value);
json.put(key, value);
}
return json;
}
private static JSONArray jsonFromList(List<Map<String, Object>> list) throws JSONException
{
JSONArray array = new JSONArray();
for (Map<String, Object> map : list)
{
array.put(JSONConfigFile.jsonFromMap(map));
}
return array;
}
}